package Adaptadores;

import java.util.List;
import com.example.tdam_2013_g11.R;

import Clases.Dato;
import Clases.OpcionesDisponibles;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class InfoContactoExpandableListAdapter extends BaseExpandableListAdapter {

	private List<OpcionesDisponibles> opciones;
	private LayoutInflater inflater;
	
	public InfoContactoExpandableListAdapter(Context contexto, List<OpcionesDisponibles> opciones){
		this.opciones = opciones;
		this.inflater = LayoutInflater.from(contexto);
	}
	
	@Override
	public Object getChild(int arg0, int arg1) {
		return opciones.get(arg0).getOpciones().get(arg1);
	}

	@Override
	public long getChildId(int arg0, int arg1) {
		// TODO Auto-generated method stub
		return arg1;
	}

	@Override
	public View getChildView(int arg0, int arg1, boolean arg2, View arg3,ViewGroup arg4) {
		if(arg3 == null) {
			arg3 = inflater.inflate(R.layout.lista_item_info_hijo, arg4, false);
	    }

		TextView valor = (TextView) arg3.findViewById(R.id.textView_valor);
		TextView detalle = (TextView) arg3.findViewById(R.id.textView_detalle);
		
		Dato hijo = (Dato)getChild(arg0,arg1);
		valor.setText(hijo.getValor());
		
		switch (hijo.getTipoDeDato()){
			case 1:
				detalle.setText("Celular");
			break;
			case 2:
				detalle.setText("Casa");
			break;
			case 3:
				detalle.setText("Trabajo");
			break;
			case 4:
				detalle.setText("");
			break;
			case 5:
				detalle.setText("");
			break;
		}
	    return arg3;
	}

	@Override
	public int getChildrenCount(int arg0) {
		return opciones.get(arg0).getOpciones().size();
	}

	@Override
	public OpcionesDisponibles getGroup(int arg0) {
		return opciones.get(arg0);
	}

	@Override
	public int getGroupCount() {
		return opciones.size();
	}

	@Override
	public long getGroupId(int arg0) {
		return arg0;
	}

	@Override
	public View getGroupView(int arg0, boolean arg1, View arg2, ViewGroup arg3) {
		if (arg2 == null) {
			arg2 = inflater.inflate(R.layout.lista_item_info_padre, arg3, false);
	    }

		TextView nombre = (TextView) arg2.findViewById(R.id.textView_nombreOpcion);
		ImageView imagen =  (ImageView) arg2.findViewById(R.id.imageView_opciones);
		imagen.setImageResource(getGroup(arg0).getIcono());
		nombre.setText(getGroup(arg0).getNombre());
	    return arg2;
	}

	@Override
	public boolean hasStableIds() {
		return true;
	}

	@Override
	public boolean isChildSelectable(int arg0, int arg1) {
		return true;
	}
}
